Add proposed patch to make valgrind suppressions work on Debian
authorSimon McVittie <smcv@debian.org>
Thu, 2 Apr 2020 09:32:08 +0000 (10:32 +0100)
committerSimon McVittie <smcv@debian.org>
Thu, 2 Apr 2020 09:32:08 +0000 (10:32 +0100)
debian/patches/series [new file with mode: 0644]
debian/patches/supp-Use-a-single-suppressions-file-for-lib-lib64-and-mul.patch [new file with mode: 0644]

diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644 (file)
index 0000000..6b30854
--- /dev/null
@@ -0,0 +1 @@
+supp-Use-a-single-suppressions-file-for-lib-lib64-and-mul.patch
diff --git a/debian/patches/supp-Use-a-single-suppressions-file-for-lib-lib64-and-mul.patch b/debian/patches/supp-Use-a-single-suppressions-file-for-lib-lib64-and-mul.patch
new file mode 100644 (file)
index 0000000..777c37c
--- /dev/null
@@ -0,0 +1,443 @@
+From: Simon McVittie <smcv@debian.org>
+Date: Thu, 2 Apr 2020 09:18:55 +0100
+Subject: supp: Use a single suppressions file for lib, lib64 and multiarch
+
+In addition to the traditional library directory lib and the 64-bit
+multilib directory lib64, this will cover Debian-style multiarch
+(lib/x86_64-linux-gnu etc.), Arch Linux 32-bit (lib32), x32 and
+various others.
+
+Signed-off-by: Simon McVittie <smcv@debian.org>
+---
+ gtk.supp    |  54 +++++++------
+ gtk64.supp  | 253 ------------------------------------------------------------
+ meson.build |   2 +-
+ 3 files changed, 33 insertions(+), 276 deletions(-)
+ delete mode 100644 gtk64.supp
+
+diff --git a/gtk.supp b/gtk.supp
+index 7c57e5e..37d6d65 100644
+--- a/gtk.supp
++++ b/gtk.supp
+@@ -33,55 +33,55 @@
+   Memcheck:Leak
+   fun:calloc
+   ...
+-  obj:/usr/lib/dri/radeonsi_dri.so
++  obj:/usr/lib*/dri/radeonsi_dri.so
+ }
+ # mesa driver stuff
+ {
+    i965 addr4
+    Memcheck:Addr4
+-   obj:/usr/lib/dri/i965_dri.so*
++   obj:/usr/lib*/dri/i965_dri.so*
+ }
+ {
+    i965 addr8
+    Memcheck:Addr8
+-   obj:/usr/lib/dri/i965_dri.so*
++   obj:/usr/lib*/dri/i965_dri.so*
+ }
+ {
+    i965 memcpy
+    Memcheck:Addr8
+    fun:memcpy*
+-   obj:/usr/lib/dri/i965_dri.so*
++   obj:/usr/lib*/dri/i965_dri.so*
+ }
+ {
+    i965 memcpy
+    Memcheck:Addr2
+    fun:memcpy*
+-   obj:/usr/lib/dri/i965_dri.so*
++   obj:/usr/lib*/dri/i965_dri.so*
+ }
+ {
+    mesa memcmp 8
+    Memcheck:Addr8
+    fun:*memcmp*
+-   obj:/usr/lib/dri/i965_dri.so*
++   obj:/usr/lib*/dri/i965_dri.so*
+ }
+ {
+    mesa memcmp 1
+    Memcheck:Addr1
+    fun:*memcmp*
+-   obj:/usr/lib/dri/i965_dri.so*
++   obj:/usr/lib*/dri/i965_dri.so*
+ }
+ {
+    mesa memset 8
+    Memcheck:Addr8
+    fun:*memset*
+-   obj:/usr/lib/dri/i965_dri.so
++   obj:/usr/lib*/dri/i965_dri.so
+ }
+ {
+@@ -123,7 +123,7 @@
+    Memcheck:Leak
+    match-leak-kinds: definite
+    fun:malloc
+-   obj:/usr/lib/dri/i965_dri.so*
++   obj:/usr/lib*/dri/i965_dri.so*
+ }
+ {
+@@ -187,8 +187,8 @@
+    Memcheck:Leak
+    match-leak-kinds: definite
+    fun:malloc
+-   obj:/usr/lib/libfontconfig.so*
+-   obj:/usr/lib/libfontconfig.so*
++   obj:/usr/lib*/libfontconfig.so*
++   obj:/usr/lib*/libfontconfig.so*
+    fun:FcFontSetList
+ }
+@@ -197,8 +197,8 @@
+    Memcheck:Leak
+    match-leak-kinds: definite
+    fun:realloc
+-   obj:/usr/lib/libfontconfig.so*
+-   obj:/usr/lib/libfontconfig.so*
++   obj:/usr/lib*/libfontconfig.so*
++   obj:/usr/lib*/libfontconfig.so*
+    fun:FcFontRenderPrepare
+ }
+@@ -207,8 +207,8 @@
+    Memcheck:Leak
+    match-leak-kinds: definite
+    fun:realloc
+-   obj:/usr/lib/libfontconfig.so*
+-   obj:/usr/lib/libfontconfig.so*
++   obj:/usr/lib*/libfontconfig.so*
++   obj:/usr/lib*/libfontconfig.so*
+    fun:FcDefaultSubstitute
+ }
+@@ -216,8 +216,8 @@
+ {
+    pixman_image_composite32
+    Memcheck:Cond
+-   obj:/usr/lib/libpixman-1.so*
+-   obj:/usr/lib/libpixman-1.so*
++   obj:/usr/lib*/libpixman-1.so*
++   obj:/usr/lib*/libpixman-1.so*
+    fun:pixman_image_composite32
+ }
+@@ -227,9 +227,9 @@
+    Memcheck:Leak
+    match-leak-kinds: definite
+    fun:realloc
+-   obj:/usr/lib/libfontconfig.so*
+-   obj:/usr/lib/libfontconfig.so*
+-   obj:/usr/lib/libcairo.so*
++   obj:/usr/lib*/libfontconfig.so*
++   obj:/usr/lib*/libfontconfig.so*
++   obj:/usr/lib*/libcairo.so*
+    fun:pango_cairo_fc_font_map_fontset_key_substitute
+ }
+@@ -237,7 +237,17 @@
+   pango 2
+   Memcheck:Leak
+   fun:realloc
+-  obj:/usr/lib/libfontconfig.so*
+-  obj:/usr/lib/libfontconfig.so*
++  obj:/usr/lib*/libfontconfig.so*
++  obj:/usr/lib*/libfontconfig.so*
+   fun:_cairo_ft_font_options_substitute
+ }
++
++# GLib
++{
++  glib 1
++  Memcheck:Leak
++  match-leak-kinds: definite
++  fun:malloc
++  fun:g_malloc
++  fun:g_quark_init
++}
+diff --git a/gtk64.supp b/gtk64.supp
+deleted file mode 100644
+index a0411f0..0000000
+--- a/gtk64.supp
++++ /dev/null
+@@ -1,253 +0,0 @@
+-# Actual GTK things
+-{
+-  GtkWidgetClass action GPtrArray
+-  Memcheck:Leak
+-  fun:malloc
+-  fun:g_malloc
+-  fun:g_slice_alloc
+-  fun:g_ptr_array_sized_new
+-  fun:g_ptr_array_new
+-  fun:gtk_widget_class_add_action
+-}
+-
+-{
+-   GTK media extension gio modules
+-   Memcheck:Leak
+-   match-leak-kinds: definite
+-   fun:malloc
+-   fun:g_malloc
+-   fun:g_slice_alloc
+-   fun:g_slice_alloc0
+-   fun:g_type_create_instance
+-   fun:g_object_new_internal
+-   fun:g_object_new_with_properties
+-   fun:g_object_new
+-   fun:g_io_module_new
+-   fun:g_io_modules_scan_all_in_directory_with_scope
+-   fun:gtk_media_file_extension_init
+-}
+-
+-# AMD driver
+-{
+-  radeonsi_dri general
+-  Memcheck:Leak
+-  fun:calloc
+-  ...
+-  obj:/usr/lib64/dri/radeonsi_dri.so
+-}
+-
+-# mesa driver stuff
+-{
+-   i965 addr4
+-   Memcheck:Addr4
+-   obj:/usr/lib64/dri/i965_dri.so*
+-}
+-
+-{
+-   i965 addr8
+-   Memcheck:Addr8
+-   obj:/usr/lib64/dri/i965_dri.so*
+-}
+-
+-{
+-   i965 memcpy
+-   Memcheck:Addr8
+-   fun:memcpy*
+-   obj:/usr/lib64/dri/i965_dri.so*
+-}
+-
+-{
+-   i965 memcpy
+-   Memcheck:Addr2
+-   fun:memcpy*
+-   obj:/usr/lib64/dri/i965_dri.so*
+-}
+-
+-{
+-   mesa memcmp 8
+-   Memcheck:Addr8
+-   fun:*memcmp*
+-   obj:/usr/lib64/dri/i965_dri.so*
+-}
+-
+-{
+-   mesa memcmp 1
+-   Memcheck:Addr1
+-   fun:*memcmp*
+-   obj:/usr/lib64/dri/i965_dri.so*
+-}
+-
+-{
+-   mesa memset 8
+-   Memcheck:Addr8
+-   fun:*memset*
+-   obj:/usr/lib64/dri/i965_dri.so
+-}
+-
+-{
+-   mesa realpath
+-   Memcheck:Leak
+-   match-leak-kinds: definite
+-   fun:malloc
+-   fun:realpath@@GLIBC_2.3
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   fun:epoxy_eglInitialize_global_rewrite_ptr
+-}
+-
+-{
+-   mesa calloc
+-   Memcheck:Leak
+-   match-leak-kinds: definite
+-   fun:calloc
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   fun:epoxy_eglInitialize_global_rewrite_ptr
+-}
+-
+-{
+-   mesa malloc
+-   Memcheck:Leak
+-   match-leak-kinds: definite
+-   fun:malloc
+-   obj:/usr/lib64/dri/i965_dri.so*
+-}
+-
+-{
+-   mesa glReadPixels
+-   Memcheck:Addr16
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   fun:epoxy_glReadPixels_global_rewrite_ptr
+-}
+-
+-{
+-   epoxy glxQueryServerString 1
+-   Memcheck:Leak
+-   fun:malloc
+-   fun:XextAddDisplay
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   fun:epoxy_glXQueryServerString_global_rewrite_ptr
+-
+-}
+-
+-{
+-   epoxy glxQueryServerString 2
+-   Memcheck:Leak
+-   match-leak-kinds: definite
+-   fun:malloc
+-   fun:realpath*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   fun:epoxy_glXQueryServerString_global_rewrite_ptr
+-}
+-
+-{
+-   epoxy glGetTexImage
+-   Memcheck:Addr16
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   obj:*
+-   fun:epoxy_glGetTexImage_global_rewrite_ptr
+-}
+-
+-
+-
+-
+-# Fontconfig
+-{
+-   FcFontSetList
+-   Memcheck:Leak
+-   match-leak-kinds: definite
+-   fun:malloc
+-   obj:/usr/lib64/libfontconfig.so*
+-   obj:/usr/lib64/libfontconfig.so*
+-   fun:FcFontSetList
+-}
+-
+-{
+-   FcFontRenderPrepare
+-   Memcheck:Leak
+-   match-leak-kinds: definite
+-   fun:realloc
+-   obj:/usr/lib64/libfontconfig.so*
+-   obj:/usr/lib64/libfontconfig.so*
+-   fun:FcFontRenderPrepare
+-}
+-
+-{
+-   FcDefaultSubstitute
+-   Memcheck:Leak
+-   match-leak-kinds: definite
+-   fun:realloc
+-   obj:/usr/lib64/libfontconfig.so*
+-   obj:/usr/lib64/libfontconfig.so*
+-   fun:FcDefaultSubstitute
+-}
+-
+-# Pixman
+-{
+-   pixman_image_composite32
+-   Memcheck:Cond
+-   obj:/usr/lib64/libpixman-1.so*
+-   obj:/usr/lib64/libpixman-1.so*
+-   fun:pixman_image_composite32
+-}
+-
+-# Pango
+-{
+-   pango 1
+-   Memcheck:Leak
+-   match-leak-kinds: definite
+-   fun:realloc
+-   obj:/usr/lib64/libfontconfig.so*
+-   obj:/usr/lib64/libfontconfig.so*
+-   obj:/usr/lib64/libcairo.so*
+-   fun:pango_cairo_fc_font_map_fontset_key_substitute
+-}
+-
+-{
+-  pango 2
+-  Memcheck:Leak
+-  fun:realloc
+-  obj:/usr/lib64/libfontconfig.so*
+-  obj:/usr/lib64/libfontconfig.so*
+-  fun:_cairo_ft_font_options_substitute
+-}
+-
+-# GLib
+-{
+-  glib 1
+-  Memcheck:Leak
+-  match-leak-kinds: definite
+-  fun:malloc
+-  fun:g_malloc
+-  fun:g_quark_init
+-}
+diff --git a/meson.build b/meson.build
+index 92405f6..7eee560 100644
+--- a/meson.build
++++ b/meson.build
+@@ -803,7 +803,7 @@ meson.add_install_script('build-aux/meson/post-install.py',
+ if host_machine.system() != 'windows'
+   # Install Valgrind suppression files (except on Windows,
+   # as Valgrind is currently not supported on Windows)
+-  install_data('gtk.supp', 'gtk64.supp',
++  install_data('gtk.supp',
+     install_dir : join_paths(gtk_datadir, 'gtk-4.0', 'valgrind'))
+ endif